软件测试

您所在的位置:网站首页 wireshark tcp抓包分析 软件测试

软件测试

#软件测试 | 来源: 网络整理| 查看: 265

1.TCP简介

TCP是在传输层中,一种面向连接的、可靠的、基于字节流的通信协议。

2.抓包分析的工具

抓包分析的工具分类如下。

(1)网络嗅探工具:Tcpdump、Wireshark。

(2)代理工具:Fiddler、Charles、Anyproxyburpsuite、Mitmproxy。

(3)分析工具:Curl、Postman、Chrome Devtool。

3.抓包分析的部分工具介绍

(1)Tcpdump

Tcpdump是一款将网络中传送的数据包的 “头” 完全截获下来供用户分析的工具。它支持针对协议、主机、网络或端口的过滤,并不通过and、or、not等逻辑语句去掉无用的信息。

用Tcpdump时刻监听443端口,如果发现异常信息,就把这类信息输入到log文件中,命令代码如下。

sudo tcpdump port 443 -v -w /tmp/tcp.log

这条命令里使用的参数解析如表6-2所示。

 (2)Wireshark

Wireshark是一款网络嗅探工具,它除了拥有Tcpdump功能,还有更多扩展功能,如分析功能。但是在接口测试中,抓包汪汪都是在服务器上进行的,服务器一般不提供UI界面,所以Wireshark无法在服务器上运行,只能利用Tcpdump,把它监听到的信息输入到log文件,然后将log文件导入Wireshark使用,以便于我们可在有UI界面的客户端上分析数据包。

(3)抓包分析实现

获取一个HTTP的GET请求的实现步骤如下。

1)在百度上搜MP3(百度安全验证).

2)用Tcpdump截获这个GET请求,并将获取的信息输入到log文件。

3)用Wireshark打开log文件,如图6-4所示。

 log文件的前几段信息时表示三次握手,三次握手就像是下面这些操作(见图6-5)。

 注:SYN、ACK表示 “标志位” ,Ack表示 “ 确认序号 ”

(1)第一次握手:建立连接时,客户端将标志位SYN置为1,随机产生一个值Seq=x,并发送SYN包到服务端,客户端进入SYN_SENT状态,等待服务端确认。

(2)第二次握手:服务端收到SYN包后,有标志位SYN=1知道客户端请求建立连接,服务端将标志位SYN和ACK都置为1,Ack=x+1,随机产生一个值Seq=y,并将该SYN包发送给客户端以确认连接请求,此时服务端进入后SYN_RCVD状态。

(3)第三次握手:客户端收到服务端的SYN包后,检查Ack是否为y+1,ACK是否为1,如果正确,则将标志位ACK置为1,Ack=y+1,并将SYN包发送给服务端,服务端检查Ack是否为y+1,ACK是否为1,如果正确则连接建立成功,此包发送完毕,客户端和服务端进入ESTABLISHED状态,完成三次握手。

经过三次握手,客户端和服务端就可以进一步 “交流” 了,如图6-6所示。

 

结束 “ 交流 ” 时,也需要进行四次挥手,如图6-7所示。

 

(1)第一次挥手:客户端向服务端发送一个FIN,请求关闭数据传输。

(2)第二次挥手:服务端接收到客户端的FIN,向客户端发送一个ACK,其中ACK的值等于FIN+SEQ。

(3)第三次挥手:服务端向客户端发送一个FIN,告诉客户端应用程序关闭。

(4)第四次挥手:客户端收到服务端的FIN,回复一个ACK给服务端。其中ACK的值等于FIN+SEQ。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3